package com.generalbackend.common.service;

import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author tim.xie
 * @date 2022/1/21 15:27
 */
public interface IFileService {

    /**
     * 文件上传默认子目录
     * @param file
     * @return
     *      返回格式 子目录/雪花生成目录名称/文件名.后缀
     * @throws IOException
     */
    String uploadFile(MultipartFile file) throws IOException;

    /**
     * 文件上传自定义子目录
     * @param file
     * @param childDir
     *      子目录名称
     * @return
     *      返回格式 子目录/雪花生成的随机目录/文件名.后缀
     * @throws IOException
     */
    String uploadFile(MultipartFile file, String childDir) throws IOException;

    /**
     * 文件下载
     * @param response
     * @param childDir
     *      子目录
     * @param randomFolder
     *      雪花生成的随机目录
     * @param fileName
     *      文件名称
     */
    void downloadFile(HttpServletResponse response, String childDir, String randomFolder, String fileName);

}
